package com.shurdroides.sintesi;

import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;

import com.google.android.c2dm.server.DeviceInfo;

@Entity
public class Usuario extends Elemento{
	@Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id_usuario;
	private String nombre;
	private Double longitud_territorio;
	private Double latitud_territorio;
	private String email;
	private int puntos;
	@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
	private Pais pais;
	@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
	private Clase_evolutiva clase;
	private int radio_vision;
	private int radio_accion;
	private int fuerza;
	private int porcentaje_robo;
	private int caza;
	@OneToMany(cascade = CascadeType.PERSIST)
	private List<Receta> recetasDescubiertas;
	@OneToMany(cascade = CascadeType.PERSIST)
	private List<Logro> logros;
	@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
	private DeviceInfo device;
	

	public Usuario(){
		
	}
	
	//getters and setters
	public Long getId_usuario() {
		return id_usuario;
	}
	public void setId_usuario(Long id_usuario) {
		this.id_usuario = id_usuario;
	}
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public Double getLongitud_territorio() {
		return longitud_territorio;
	}
	public void setLongitud_territorio(Double longitud_territorio) {
		this.longitud_territorio = longitud_territorio;
	}
	public Double getLatitud_territorio() {
		return latitud_territorio;
	}
	public void setLatitud_territorio(Double latitud_territorio) {
		this.latitud_territorio = latitud_territorio;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public int getPuntos() {
		return puntos;
	}
	public void setPuntos(int puntos) {
		this.puntos = puntos;
	}
	public Clase_evolutiva getClase() {
		return clase;
	}
	public void setClase(Clase_evolutiva clase) {
		this.clase = clase;
	}
	public int getRadio_vision() {
		return radio_vision;
	}
	public void setRadio_vision(int radio_vision) {
		this.radio_vision = radio_vision;
	}
	public int getRadio_accion() {
		return radio_accion;
	}
	public void setRadio_accion(int radio_accion) {
		this.radio_accion = radio_accion;
	}
	public int getFuerza() {
		return fuerza;
	}
	public void setFuerza(int fuerza) {
		this.fuerza = fuerza;
	}
	public int getPorcentaje_robo() {
		return porcentaje_robo;
	}
	public void setPorcentaje_robo(int porcentaje_robo) {
		this.porcentaje_robo = porcentaje_robo;
	}
	public int getCaza() {
		return caza;
	}
	public void setCaza(int caza) {
		this.caza = caza;
	}

	public void setRecetasDescubiertas(List<Receta> recetasDescubiertas) {
		this.recetasDescubiertas = recetasDescubiertas;
	}

	public List<Receta> getRecetasDescubiertas() {
		return recetasDescubiertas;
	}

	public List<Logro> getLogros() {
		return logros;
	}

	public void setLogros(List<Logro> logros) {
		this.logros = logros;
	}

	public Pais getPais() {
		return pais;
	}

	public void setPais(Pais pais) {
		this.pais = pais;
	}

	public DeviceInfo getDevice() {
		return device;
	}

	public void setDevice(DeviceInfo device) {
		this.device = device;
	}
	
}
